package com.xbongbong.saas.model;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.IModel;
import com.xbongbong.pro.domain.entity.IndexSetEntity;
import com.xbongbong.pro.index.pojo.IndexSetDataPojo;

import java.util.List;
import java.util.Map;

/**
 * @description: 首页看板
 * @Author: hongxiao
 * @date: 2019-02-27 14:47
 * @since v1.0
 */
public interface IndexSetModel extends IModel<IndexSetEntity> {

    /**
     * 批量插入
     * @param entityList 看板配置实体
     * @return
     * @throws
     *
     * @author hongxiao
     * @date: 2019-02-28 22:24
     * @since v1.0
     * @version v1.0
     */
    void insertBatch(List<IndexSetEntity> entityList);
    /**
     * 保存
     * @param entity 首页看板配置实体
     * @return
     * @throws
     *
     * @author hongxiao
     * @date: 2019-02-27 16:23
     * @since v1.0
     * @version v1.0
     */
    Integer save(IndexSetEntity entity) throws XbbException;

    /**
     * 根据看板分类获取看板配置数据
     * @param corpid 公司id
     * @param userId 员工id
     * @param boardType 看板类型：1web左侧看板，2web右侧看板，3app看板
     * @return
     * @throws
     *
     * @author hongxiao
     * @date: 2019-02-27 17:28
     * @since v1.0
     * @version v1.0
     */
    IndexSetEntity getByBoardType(String corpid, String userId, Integer boardType);

    /**
     * 批量查找IndexSetEntity
     *
     * @param param 入参
     * @return java.util.List<com.xbongbong.pro.domain.entity.IndexSetEntity>
     * @author 徐俊杰
     * @date 2019/4/30 11:24
     * @since v1.0
     */
    @Override
    List<IndexSetEntity> findEntitys(Map<String, Object> param);

    /**
     * 批量更新（更新content_data，update_time）
     *
     * @param list 首页设置实体列表
     * @param corpid 公司id
     * @throws XbbException 更新数据异常
     * @author 徐俊杰
     * @date 2019/4/30 16:26
     * @since v1.0
     */
    void updateBatch(List<IndexSetEntity> list, String corpid) throws XbbException;

    /**
     * 刷脚本用，不根据corpid批量更新数据
     * @param chartEntityList 实体信息
     */
    @Deprecated
    void updateBatchNoCorpId(List<IndexSetEntity> chartEntityList);

    /**
     * 获取首页看板--公司默认配置
     *
     * @param corpid 公司id
     * @return
     * @throws
     * @author hongxiao
     * @date: 2019-05-10 12:08
     * @since v1.0
     * @version v1.0
     */
    List<IndexSetEntity> getCompanyConfig(String corpid);

    /**
     * BI刷数据脚本
     * @return 集合
     */
    List<IndexSetEntity> findByBiScript(String corpid);

    /**
     * 获取实体
     * @param key
     * @param corpid
     * @return
     */
    IndexSetEntity getByKey(Long key, String corpid);

    /**
     * 批量删除
     * @param list 公司集合
     * @author xingxing.xiao
     */
    Integer deleteFocusBatchByCorpids4Script(List<String> list,List<Integer> boardTypeList);
}
